import pandas as pd

# 1. 读取 student.xlsx 文件内容，并打印输出
excel_file = pd.ExcelFile('C:\\Users\\admin\\Desktop\\aa\\yesterday\\student.xlsx')
df = excel_file.parse()

print('文件内容信息:')
df.info()

# 查看数据集行数和列数
rows, columns = df.shape

if rows < 100 and columns < 20:
    # 短表数据（行数少于100且列数少于20）查看全量数据信息
    print('文件全部内容信息:')
    print(df.to_csv(sep='\t', na_rep='nan'))
else:
    # 长表数据查看数据前几行信息
    print('文件前几行内容信息:')
    print(df.head().to_csv(sep='\t', na_rep='nan'))

# 2. 按性别统计学生人数，并打印输出
gender_count = df['性别'].value_counts()
print('按性别统计学生人数:')
print(gender_count)

# 3. 按年龄段统计学生人数，并打印输出
# 假设年龄列存在且为数值类型，这里简单划分为几个年龄段，你可根据实际情况调整
bins = [0, 18, 30, 50, 100]
labels = ['0 - 18岁', '19 - 30岁', '31 - 50岁', '51岁及以上']
df['年龄段'] = pd.cut(df['年龄'], bins=bins, labels=labels)
age_group_count = df['年龄段'].value_counts()
print('按年龄段统计学生人数:')
print(age_group_count)

# 4. 按地区（外省按省份，海南省按市县）统计学生人数，并打印输出
# 通过判断是否包含'海南'来区分处理
df['地区分类'] = df['家庭地址'].apply(lambda x: x.split('省')[-1].split('市')[0] if '海南' in x else x.split('省')[0])
region_count = df['地区分类'].value_counts()
print('按地区统计学生人数:')
print(region_count)